const urlHead = "https://online.jup360.com/lotteryherion/";
// const urlHead = "http://localhost:29001/lotteryherion/";

///test
// store.set("lottery_herion_accessToken","15FDA5C3005239100BE2A67CBD44E4ACDAC51E512736B7054ED67D0D")
///
let tokenKey = "lottery_herion_accessToken";

let reqInstance = axios.create({
    timeout: 10000,
    headers: {
        'Content-Type': 'application/json;charset=UTF-8',
        'accessToken': store.get(tokenKey) || ''
    }
})
reqInstance.interceptors.request.use(config => {
    config.headers.accessToken = store.get(tokenKey) || '';
    config.url = urlHead + config.url;
    return config;
});

reqInstance.interceptors.response.use(response => {
    if (response.data.errcode == -11) {
        store.remove(tokenKey);
        store.remove('user');
        // window.location.replace('http://online.jup360.com/sugarstarstorm/api/user/authorize')
    }
    return response;
})

function init(callback) {
    // 初始化
    let init = () => {
        // getUserInfo(()=>{
        //     user = store.get('user');
        //     if (callback) callback(user)
        //     console.log(user);
        // });

        // let user = store.get('user');
        // if (user) {
        //     if (callback) callback(user)
        // } else {
        //
        // }

        reqInstance.post('user/wx_info', {url: window.location.href}).then(result => {
            getHelpProgress((res) => {
                let code = null;

                console.log(res)

                if (res.errcode == 0) {
                    if (res.userAssistance&&res.userAssistance){
                        code = res.userAssistance.code;
                    }
                }

                wx.config({
                    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                    appId: result.data.appid, // 必填，公众号的唯一标识
                    timestamp: result.data.timestamp, // 必填，生成签名的时间戳
                    nonceStr: result.data.nonceStr, // 必填，生成签名的随机串
                    signature: result.data.signature,// 必填，签名
                    jsApiList:['getLocalImgData','chooseImage','updateAppMessageShareData','updateTimelineShareData']
                });

                let link = `https://online.jup360.com/lotteryherion/user/authorize?share=${code}`;
                let shareImg = 'https://online.jup360.com/lotteryherion/static/images/share_icon.png';

                wx.ready(function() {
                    // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
                    wx.updateAppMessageShareData({
                        title: '快来帮我助力一下，饿了么月卡免费拿！', // 分享标题
                        desc: '一起参与互动，还有0元出游大奖等你解锁哦', // 分享描述
                        link: link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                        imgUrl: shareImg, // 分享图标
                        success: function () {
                            // 设置成功
                            // alert('set finish')
                        }
                    });

                    wx.updateTimelineShareData({
                        title: '快来帮我助力一下，饿了么月卡免费拿！', // 分享标题
                        desc: '一起参与互动，还有0元出游大奖等你解锁哦', // 分享描述
                        link: link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                        imgUrl: shareImg, // 分享图标
                        success: function () {
                            // 设置成功
                        }
                    });

                    // var audioEle = document.getElementById("Jaudio");
                    // audioEle.src="images/bgm.mp3";
                    // audioAutoPlay('Jaudio');
                })

            })


        }).catch(err => {
            console.log(err)
        });
    }

    // 获取token
    let token = store.get(tokenKey);

    console.log("## token:", token);
    // createHelpProgress({prizeCode:'dcq'},(res) => {})


    if (!token) {
        let token_code = getQueryVariable('token_code');
        if (token_code) {
            tokenByCode(token_code,()=>{
                init();
            });
        } else {
            // window.location.href = 'error.html'
        }
    } else {
    init();
    }
}

// omega/app/add/image_record

function getImageRecordId(callback) {
    reqInstance.post('app/add/image_record').then((res) => {
        console.log(res);
        if (callback) callback(res);
    }).catch((err) => {

    });
}

function tokenByCode(code, callback) {
    reqInstance
        .get(`user/token_by_code?token_code=${code}`)
        .then((res) => {
            console.log(res);
            if (res.data.errcode == 0) {
                store.set(tokenKey, res.data.accessToken);
                if (callback) callback();
            } else {
                Toast(res.data.errmsg);
            }
        });
}

function getUserInfo(callback) {
    reqInstance.get(`user/get/user_info`).then((res) => {
        console.log("## user_info", res);
        if (res.data.errcode == 0) {
            store.set('user', res.data.user);
            if (callback) callback();
        } else {
            Toast(res.data.errmsg);
        }
    })
}

function openView(url) {
    let history = store.get('history') || [];

    if (history.length <= 0) {
        history.push(window.location.href);
    }

    history.push(url);

    store.set('history', history);
    window.location.replace(url);
}

function addMessage(message) {
    // countMessage((res) => {
    //     if(res.count>0) {
    //         Toast("您已经提交过了")
    //         return;
    //     }
    //
    //     reqInstance.post(`boardMessages/7/add`, {messages: message}).then((res) => {
    //         console.log(res);
    //         if(res.data.errcode==0) {
    //             Toast("提交成功")
    //         }
    //     })
    // });

    reqInstance.post(`boardMessages/7/add`, {messages: message}).then((res) => {
        console.log(res);
        if(res.data.errcode==0) {
            Toast("提交成功")
        }
    })
}

function countMessage(callback) {
    reqInstance.get(`boardMessages/7/userCount`).then((res) => {
        console.log(res.data);
        if (callback) callback(res.data);
    })
}

function getMessages(callback) {
    reqInstance.get(`boardMessages/7/list`).then((res) => {
        // console.log(res);
        if (callback) callback(res.data);
    })
}

function backView() {
    let history = store.get('history') || [];

    if (history.length > 0) {
        history.pop();
        let url = history.pop();
        store.set('history', history);
        window.location.replace(url);
    }
}

function replaceView(url) {
    let history = ["url"];

    store.set('history', history);
    window.location.replace(url);
}

function updateUserInfo(data, callback) {
    reqInstance.post(`user/update_info`, data).then((res) => {
        console.log(res);
        if (callback) callback(res);
    })
}

/**
 * 获取是否已助力
 */
function getHelpStatus(data,callback) {
    reqInstance.get(`app/checkHelp`,{ params: data }).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 助力
 */
function help(data,callback) {
    reqInstance.get(`app/help`,{ params: data } ).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 抽奖
 */
function lottery(callback) {
    reqInstance.get(`app/lottery` ).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 检查可抽奖次数
 */
function checkLottery(callback) {
    reqInstance.get(`app/checkLotteryTimes`).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 获取我的奖品
 */
function getMyPrize(callback) {
    reqInstance.get(`app/getPrizeList`).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 获取奖品详情
 */
function getPrizeDetail(data,callback) {
    reqInstance.get(`app/getPrizeInfo`,{ params: data }).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 兑换奖品
 * userPrizeId 获奖记录id
 */
function exchangePrize(data,callback) {
    reqInstance.get(`app/redeem`, {params: data}).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 提交留资信息
 * @param data
 * @param callback
 * {
 *     id, // 奖品id
 *     name, // 姓名
 *     phone, // 电话
 *     address, // 地址
 * }
 */
function submitPrizeInfo(data,callback) {
    reqInstance.post(`app/submitPrizeInfo`, data).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 获取助力进度
 * prizeCode 奖品code
 */
function getHelpProgress(callback) {
    reqInstance.get(`app/getAssistance`).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 创建助力进度
 * prizeCode
 */
function createHelpProgress(data,callback) {
    reqInstance.get(`app/create_user_assistance`,{params:data}).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 兑换助力奖品
 */
function exchangeHelpPrize(data,callback) {
    reqInstance.get(`app/redeemAssistance`, {params: data}).then((res) => {
        if (callback) callback(res.data);
    })
}

/**
 * 获取所有助力列表
 */
function getHelpList(callback) {
    reqInstance.get(`app/getAssistanceList`).then((res) => {
        if (callback) callback(res.data);
    })
}

